home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / lib / byobu / network < prev    next >
Text File  |  2009-10-11  |  2KB  |  62 lines

  1. #!/bin/sh -e
  2. #
  3. #    network: calculate the network up/down rates
  4. #    Copyright (C) 2008 Canonical Ltd.
  5. #
  6. #    Authors: Dustin Kirkland <kirkland@canonical.com>
  7. #
  8. #    This program is free software: you can redistribute it and/or modify
  9. #    it under the terms of the GNU General Public License as published by
  10. #    the Free Software Foundation, version 3 of the License.
  11. #
  12. #    This program is distributed in the hope that it will be useful,
  13. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. #    GNU General Public License for more details.
  16. #
  17. #    You should have received a copy of the GNU General Public License
  18. #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  19.  
  20. PKG="byobu"
  21.  
  22. # Allow interface overrides in $HOME/.$PKG/status
  23. if [ -n "$MONITORED_NETWORK" ]; then
  24.     interface="$MONITORED_NETWORK"
  25. else
  26.     interface=`tail -n1 /proc/net/route  | awk '{print $1}'`
  27. fi
  28.  
  29. if [ "$1" = "--detail" ]; then
  30.     /sbin/ifconfig "$interface" | sed 's/\s*$//'
  31.     exit 0
  32. fi
  33.  
  34. [ -d "/var/run/screen/S-$USER" ] && DIR="/var/run/screen/S-$USER" || DIR="$HOME/.byobu"
  35. t2=`date +%s`
  36. for i in up down; do
  37.     cache="$DIR/$PKG.network_$i"
  38.     t1=`stat -c %Y "$cache"` 2>/dev/null || t1=0
  39.     unit="kB/s"
  40.     if [ $t2 -le $t1 ]; then
  41.         rate=0
  42.     else
  43.         x1=`cat "$cache"` 2>/dev/null || tx1=0
  44.         if [ "$i" = "up" ]; then
  45.             symbol="^"
  46.             x2=`grep -m1 "$interface:" /proc/net/dev | sed "s/^.*://" | awk '{print $9}'`
  47.         else
  48.             symbol="v"
  49.             x2=`grep -m1 "$interface:" /proc/net/dev | sed "s/^.*://" | awk '{print $1}'`
  50.         fi
  51.         echo "$x2" > "$cache"
  52.         rate=`echo "$t1" "$t2" "$x1" "$x2" | awk '{printf "%.0f", ($4 - $3) / ($2 - $1) / 1024 }'`
  53.         if [ "$rate" -lt 0 ]; then
  54.             rate=0
  55.         elif [ "$rate" -gt 1024 ]; then
  56.             rate=`echo "$rate" | awk '{printf "%.1f", $1/1024}'`
  57.             unit="MB/s"
  58.         fi
  59.     fi
  60.     printf "$symbol\005{=b mw}$rate\005{-}\005{= mw}$unit\005{-} "
  61. done
  62.